1. Statement of the Technical Field
The inventive arrangements relate to Data Storage and Management (DSM) systems, and more particularly to systems and methods for optimizing performance of the DSM systems by selectively delegating data management operations to an in-memory database system or an in-memory data grid system based on whether or not a device (e.g., an appliance) is a standalone device or a cluster device.
2. Description of the Related Art
There are a variety of DSM systems known in the art. Exemplary DSM systems are appliance based systems. The term “appliance”, as used herein, refers to a server or other computing device having software pre-packed thereon for providing services (e.g., user registry services, login services and data management services) to service users. An appliance typically includes, but is not limited to, In-Memory DataBase Systems (IMDBSs) and/or In-Memory Data Grid Systems (IMDGSs). IMDBSs and IMDGSs are well known to those having ordinary skill in the art, and therefore will not be described in detail herein. However, a brief discussion of IMDBSs and IMDGSs is provided below to assist a reader in understanding the current state of the art.
Each of the IMDBSs comprises a centralized Memory Management System (MMS) and a centralized memory. In this IMDBS scenario, a single appliance performs Relational Database Management (RDM) operations for managing configuration data (e.g., login information) stored in the centralized memory. The RDM operations generally involve reading data from the centralized memory, writing (or inserting) data into the centralized memory, updating data stored in the centralized memory and deleting data stored in the centralized memory. The read, write (or insert), update and delete operations are often achieved using Structured Query Language (SQL) elements. For example, if a service user wants to obtain a list of houses which have a sales price greater than one hundred thousand dollars ($100,000.00), then an SQL query is generated to retrieve said list. An exemplary SQL query is defined by the following statements.    SELECT *
FROM House
WHERE price >100,000.00
ORDER by Address    The SQL query retrieves all rows from a “House Table” in which the “price” column contains a value greater than one hundred thousand dollars ($100,000.00). The result is presented in ascending order by address.
In contrast, each of the IMDGSs comprises a distributed MMS and a distributed memory. In this IMDGS scenario, a cluster of appliances performs Grid Database Management (GDM) operations for managing configuration data (e.g., login information) stored in the distributed memory. More particularly, each appliance of the cluster is responsible for the management of their own configuration data (e.g., login information) stored in a grid memory. The GDM operations generally involve reading data from the distributed memory, writing data into the distributed memory, updating data stored in the distributed memory and deleting data stored in the distributed memory. The GDM operations are generally achieved using non-SQL element, such as key-value elements. For example, if a service user wants to obtain particular data, then look-up operations are performed by the IMDGS to identify a key associated with said data. The data is searched for in the distributed memory by specifying said key. As a result of the search, value information associated with said key is retrieved from an object map.
Despite the advantages of the above described appliance based systems, they suffer from certain drawbacks. For example, appliances often utilize the same configuration data (“common configuration data”) during operation. This common configuration data is stored in primary and secondary grid memories of each appliance. As such, a plurality of redundant copies of the common configuration data is contained in the IMDG of an appliance based system. One can appreciate that this configuration data redundancy is undesirable since primary and second grid memory space of the IMDG is wasted. Furthermore, the above described appliance based systems do not comprise a means for automatically detecting and tracking a change in the runtime environment or the operating state (e.g., a standalone operating state or a cluster operating state) of an appliance. Consequently, data management operations of an IMDBS or an IMDGS must be manually enabled or disabled each time an appliance is added to or removed from a cluster of appliances.